|
Programming languages can be grouped by the number and types of paradigms supported. ==Paradigm summaries== A concise reference for the programming paradigms listed in this article. * Concurrent programming – have language constructs for concurrency, these may involve multi-threading, support for distributed computing, message passing, shared resources (including shared memory), or futures * * Actor programming – concurrent computation with ''actors'' that make local decisions in response to the environment (capable of selfish or competitive behavior) * Constraint programming – relations between variables are expressed as constraints (or constraint networks), directing allowable solutions (uses constraint satisfaction or simplex algorithm) * Dataflow programming – forced recalculation of formulas when data values change (e.g. spreadsheets) * Declarative programming – describes actions (e.g. HTML describes a page but not how to actually display it) * Distributed programming – have support for multiple autonomous computers that communicate via computer networks * Functional programming – uses evaluation of mathematical functions and avoids state and mutable data * Generic programming – uses algorithms written in terms of to-be-specified-later types that are then instantiated as needed for specific types provided as parameters * Imperative programming – explicit statements that change a program state * Logic programming – uses explicit mathematical logic for programming * Metaprogramming – writing programs that write or manipulate other programs (or themselves) as their data, or that do part of the work at compile time that would otherwise be done at runtime * * Template metaprogramming – metaprogramming methods in which templates are used by a compiler to generate temporary source code, which is merged by the compiler with the rest of the source code and then compiled * * Reflective programming – metaprogramming methods in which a program modifies or extends itself * Object-oriented programming – uses data structures consisting of data fields and methods together with their interactions (objects) to design programs * * Class-based – object-oriented programming in which inheritance is achieved by defining classes of objects, versus the objects themselves * * Prototype-based – object-oriented programming that avoids classes and implements inheritance via cloning of instances * Pipeline programming – a simple syntax change to add syntax to nest function calls to language originally designed with none * Rule-based programming – a network of rules of thumb that comprise a knowledge base and can be used for expert systems and problem deduction & resolution * Visual programming – manipulating program elements graphically rather than by specifying them textually (e.g. Simulink); also termed ''diagrammatic programming'' 抄文引用元・出典: フリー百科事典『 ウィキペディア(Wikipedia)』 ■ウィキペディアで「Comparison of multi-paradigm programming languages」の詳細全文を読む スポンサード リンク
|